• 问题

    Java一共有三种可抛出结构:受检的异常、运行时异常(Runtime Exception)和错误(Error)。那么,这三种异常结构的使用场景是什么?

  • 答案

    1. 受检的异常

      如果期望调用者能够在适当的情况下进行恢复,则使用可受检的异常,让调用者在catch中进行捕获或者继续throws出去。常见的受检异常有

      • ClassNotFoundException : 找不到类或接口所产生的异常;
      • CloneNotSupportedException : 使用对象的 clone( )方法但无法执行 Cloneable所产生的异常;
      • IllegalAccessException : 类定义不明确所产生的异常;
      • InstantiationException : 使用 newInstance( )方法试图建立一个类 instance时所产生的异常;
      • InterruptedException : 目前线程等待执行,另一线程中断目前线程所产生的异常。
    2. 运行时异常

      运行时异常通常用来表明程序错误,大多数运行时异常是指前提条件违例,API提供方和API调用方没有遵守双方的约定,比如在访问数组时,访问的索引超过了数组的长度就会出现ArrayIndexOutOfBoundsException。如果,不想调用者恢复异常情况,则可以抛出运行时异常。常见的运行时异常有ArithmeticException、ArrayStoreException、ArrayIndexOutOfBoundsException等等。

    3. 错误

      Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足、操作系统出错。在大多数情况下,当遇到这样的错误时,建议让该程序中断。这样的异常超出了程序可控制的范围。

  • 结论

    Java异常体系中一共有三种异常结构,应该根据具体的使用场景选择合适的异常,而不是胡乱使用。

results matching ""

    No results matching ""